Crate rocksdb[][src]

Expand description

Rust wrapper for RocksDB.

Examples

use rocksdb::{DB, Options};
// NB: db is automatically closed at end of lifetime
let path = "_path_for_rocksdb_storage";
{
   let db = DB::open_default(path).unwrap();
   db.put(b"my key", b"my value").unwrap();
   match db.get(b"my key") {
       Ok(Some(value)) => println!("retrieved value {}", String::from_utf8(value).unwrap()),
       Ok(None) => println!("value not found"),
       Err(e) => println!("operational problem encountered: {}", e),
   }
   db.delete(b"my key").unwrap();
}
let _ = DB::destroy(&Options::default(), path);

Opening a database and a single column family with custom options:

use rocksdb::{DB, ColumnFamilyDescriptor, Options};

let path = "_path_for_rocksdb_storage_with_cfs";
let mut cf_opts = Options::default();
cf_opts.set_max_write_buffer_number(16);
let cf = ColumnFamilyDescriptor::new("cf1", cf_opts);

let mut db_opts = Options::default();
db_opts.create_missing_column_families(true);
db_opts.create_if_missing(true);
{
    let db = DB::open_cf_descriptors(&db_opts, path, vec![cf]).unwrap();
}
let _ = DB::destroy(&db_opts, path);

Re-exports

pub use crate::compaction_filter::Decision as CompactionDecision;
pub use crate::merge_operator::MergeOperands;
pub use crate::perf::PerfContext;
pub use crate::perf::PerfMetric;
pub use crate::perf::PerfStatsLevel;

Modules

Implementation of bindings to RocksDB Checkpoint1 API

rustic merge operator

Structs

For configuring block-based file storage.

A specialized opaque type used to represent a column family by the MultiThreaded mode. Clone (and Copy) is derived to behave like &ColumnFamily (this is used for single-threaded mode). Clone/Copy is safe because this lifetime is bound to DB like iterators/snapshots. On top of it, this is as cheap and small as &ColumnFamily because this only has a single pointer-wide field.

An opaque type used to represent a column family. Returned from some functions, and used in others

A descriptor for a RocksDB column family.

Configuration of cuckoo-based storage.

An iterator over a database or column family, with specifiable ranges and direction.

Represents a path where sst files can be put into

Wrapper around RocksDB PinnableSlice struct.

An iterator over a database or column family, with specifiable ranges and direction.

Iterates the batches of writes since a given sequence number.

A RocksDB database.

An Env is an interface used by the rocksdb implementation to access operating system functionality like the filesystem etc. Callers may wish to provide a custom Env object when opening a database to get fine gain control; e.g., to rate limit file system operations.

A simple wrapper round a string, used for errors reported from ffi calls.

Optionally wait for the memtable flush to be performed.

For configuring external files ingestion.

The metadata that describes a SST file

Actual marker type for the marker trait ThreadMode, which holds a collection of column families wrapped in a RwLock to be mutated concurrently. The other mode is SingleThreaded.

Database-wide options around performance and behavior.

Used with DBOptions::set_plain_table_factory. See official wiki for more information.

Actual marker type for the marker trait ThreadMode, which holds a collection of column families without synchronization primitive, providing no overhead for the single-threaded column family alternations. The other mode is MultiThreaded.

A SliceTransform is a generic pluggable way of transforming one string to another. Its primary use-case is in configuring rocksdb to store prefix blooms by setting prefix_extractor in ColumnFamilyOptions.

A consistent view of the database at the point of creation.

SstFileWriter is used to create sst files that can be added to database later All keys in files generated by SstFileWriter will have sequence number = 0.

An atomic batch of write operations.

Optionally disable WAL or sync for this write.

Enums

Used by BlockBasedOptions::set_index_type.

Used by BlockBasedOptions::set_data_block_index_type.

Defines the underlying memtable implementation. See official wiki for more information.

Constants

The name of the default column family.

Traits

Utility trait to accept both supported references to ColumnFamily (&ColumnFamily and BoundColumnFamily)

Marker trait to specify single or multi threaded column family alternations for DBWithThreadMode<T>

Receives the puts and deletes of a write batch.

Type Definitions

Handy type alias to hide actual type difference to reference ColumnFamily depending on the multi-threaded-cf crate feature.

A type alias to DB instance type with the single-threaded column family creations/deletions

A type alias to keep compatibility. See DBIteratorWithThreadMode for details

A type alias to keep compatibility. See DBRawIteratorWithThreadMode for details

A type alias to keep compatibility. See SnapshotWithThreadMode for details